home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / telecomm / sticpsrc.lzh / SOURCE.ARC / REGS.H < prev    next >
C/C++ Source or Header  |  1990-05-29  |  954b  |  40 lines

  1. #ifndef __TURBOC__
  2. union reg {
  3.     struct half {
  4.         char low;
  5.         char high;
  6.     } byte;
  7.     unsigned short word;
  8. };
  9. struct regs {
  10.     union reg ax,bx,cx,dx,si,di,ds,es;
  11. };
  12.  
  13. /* Macros to simulate Turbo-C style register pseudovariables */
  14. #define    _AX    regs.ax.word
  15. #define    _AL    regs.ax.byte.low
  16. #define    _AH    regs.ax.byte.high
  17. #define    _BX    regs.bx.word
  18. #define    _BL    regs.bx.byte.low
  19. #define    _BH    regs.bx.byte.high
  20. #define    _CX    regs.cx.word
  21. #define    _CL    regs.cx.byte.low
  22. #define    _CH    regs.cx.byte.high
  23. #define    _DX    regs.dx.word
  24. #define    _DL    regs.dx.byte.low
  25. #define    _DH    regs.dx.byte.high
  26. #define    _DI    regs.di.word
  27. #define    _SI    regs.si.word
  28. #define    _DS    regs.ds.word
  29. #define    _ES    regs.es.word
  30. #endif
  31.  
  32. #ifndef FP_SEG
  33. /* Segment number of pointer */
  34. # define FP_SEG(x)    (sizeof(x) == 4 ? ((long)(x) >> 16) : getds())
  35. /* Offset of pointer */
  36. # define FP_OFF(x)    ((unsigned short)((long)(x) & 0xffff))
  37. #endif
  38.  
  39. #define    FLAG_CARRY    (1 << 0)    /* Carry flag */
  40.